package cn.com.huzo.repository.tech;

import cn.com.huzo.model.entities.tech.PieceYardageHeaderEntity;
import huzofw.repository.GenericRepository;
import java.util.List;
import java.util.Map;

/**
 * 单耗数据访问对象接口。
 *
 * @author 吴旭
 */
public interface PieceYardageHeaderRepository extends GenericRepository<PieceYardageHeaderEntity, Long> {

    /**
     * 根据给定ID取得单耗信息对象。
     *
     * @param rootNodeName 单耗根节点名称
     * @param key 单耗标识
     * @return 单耗信息对象
     */
    PieceYardageHeaderEntity fetchByKey(String rootNodeName, Long key);

    /**
     * 根据给定的款号取得单耗信息(因为有可能同一个款对应多个单耗)
     *
     * @param criterion 款号、单耗类型等参数
     * @return
     */
    List<PieceYardageHeaderEntity> fetchByStyleNo(Map<String, Object> criterion);

    /**
     * 批量更新单耗所属目录。
     *
     * @param itemList 要更新的单耗数据列表
     * @return 影响的行数
     */
    Integer batchChangeCatalogue(List<PieceYardageHeaderEntity> itemList);

    /**
     * 更新单耗员
     *
     * @param instance 要更新的数据
     * @return 影响的行数
     */
    Integer updateGradedBy(PieceYardageHeaderEntity instance);

    /**
     * 更新最后一次的操作时间
     *
     * @param headerKey 单耗标识
     * @return
     */
    Integer updateLastUpdatedDate(Long headerKey);
}
